package dao

import "gorm.io/gorm"

// ExamUserAnswers 用户每道题的答题记录
type ExamUserAnswers struct {
	ID         int    `gorm:"primaryKey" json:"id"`                  // 主键ID
	ExamID     int    `gorm:"not null;index" json:"exam_id"`         // 考卷ID
	QuestionID int    `gorm:"not null;index" json:"question_id"`     // 题目ID
	UserAnswer string `gorm:"type:text;not null" json:"user_answer"` // 用户提交的答案
	IsCorrect  *bool  `gorm:"default:null" json:"is_correct"`        // 是否正确
	CreatedAt  string `gorm:"type:datetime" json:"created_at"`       // 答题时间
	UpdatedAt  string `gorm:"type:datetime" json:"updated_at"`       // 最后更新时间
}

// 表名称
func (ExamUserAnswers) TableName() string {
	return "exam_user_answers"
}

// GetUserAnswerByExamAndQuestion 查询用户在某次考试某题的答题记录
func GetUserAnswerByExamAndQuestion(examId, questionId int) (*ExamUserAnswers, error) {
	var ans ExamUserAnswers
	if DB == nil {
		return nil, gorm.ErrInvalidDB
	}
	if err := DB.Where("exam_id = ? AND question_id = ? ", examId, questionId).First(&ans).Error; err != nil {
		return nil, err
	}
	return &ans, nil
}
